<!-- HTML header for doxygen 1.8.20-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=9"/>
	<meta name="generator" content="Doxygen 1.9.4"/>
	<meta name="viewport" content="width=device-width, initial-scale=1"/>
	<title>Raspberry Pi Pico SDK: sm_config</title>
	<!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="dynsections.js"></script>
	<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
	<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
	<link href="doxygen.css" rel="stylesheet" type="text/css" />
	<link href="normalise.css" rel="stylesheet" type="text/css"/>
<link href="main.css" rel="stylesheet" type="text/css"/>
<link href="styles.css" rel="stylesheet" type="text/css"/>
</head>
<body>
	<div class="navigation-mobile">
		<div class="logo--mobile">
			<a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
		</div>
		<div class="navigation-toggle">
			<span class="line-1"></span>
			<span class="line-2">
				<p>Menu Toggle</p>
			</span>
			<span class="line-3"></span>
		</div>
	</div>
	<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
		<div class="logo">
			<a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
			<span style="display: inline-block; margin-top: 10px;">
				v2.1.0
			</span>
		</div>
		<div class="navigation-footer">
			<img src="logo-mobile.svg" alt="Raspberry Pi">
			<a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
		</div>
<!-- 		<div class="search">
			<form>
				<input type="search" name="search" id="search" placeholder="Search">
				<input type="submit" value="Search">
			</form>
		</div> -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__sm__config.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">sm_config<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a> &raquo; <a class="el" href="group__hardware__pio.html">hardware_pio</a></div></div></div>
</div><!--header-->
<div class="contents">

<p>PIO state machine configuration.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpio__sm__config.html">pio_sm_config</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">PIO Configuration structure.  <a href="structpio__sm__config.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1dbca28933c083592e6e359effe250bf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga1dbca28933c083592e6e359effe250bf">sm_config_set_out_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_base)</td></tr>
<tr class="memdesc:ga1dbca28933c083592e6e359effe250bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'out' pins in a state machine configuration.  <a href="group__sm__config.html#ga1dbca28933c083592e6e359effe250bf">More...</a><br /></td></tr>
<tr class="separator:ga1dbca28933c083592e6e359effe250bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade3d072e319fc7d10bec180a9692ea89"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gade3d072e319fc7d10bec180a9692ea89">sm_config_set_out_pin_count</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_count)</td></tr>
<tr class="memdesc:gade3d072e319fc7d10bec180a9692ea89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of 'out' pins in a state machine configuration.  <a href="group__sm__config.html#gade3d072e319fc7d10bec180a9692ea89">More...</a><br /></td></tr>
<tr class="separator:gade3d072e319fc7d10bec180a9692ea89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3004bbd996443d0c841664ebc92905c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf3004bbd996443d0c841664ebc92905c">sm_config_set_out_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_base, uint out_count)</td></tr>
<tr class="memdesc:gaf3004bbd996443d0c841664ebc92905c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'out' pins in a state machine configuration.  <a href="group__sm__config.html#gaf3004bbd996443d0c841664ebc92905c">More...</a><br /></td></tr>
<tr class="separator:gaf3004bbd996443d0c841664ebc92905c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40d4807c0665d30ceab153b7444560eb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga40d4807c0665d30ceab153b7444560eb">sm_config_set_set_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_base)</td></tr>
<tr class="memdesc:ga40d4807c0665d30ceab153b7444560eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'set' pins in a state machine configuration.  <a href="group__sm__config.html#ga40d4807c0665d30ceab153b7444560eb">More...</a><br /></td></tr>
<tr class="separator:ga40d4807c0665d30ceab153b7444560eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga78e129fe383f2af0fc5e1448dea4c3d6">sm_config_set_set_pin_count</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_count)</td></tr>
<tr class="memdesc:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the count of 'set' pins in a state machine configuration.  <a href="group__sm__config.html#ga78e129fe383f2af0fc5e1448dea4c3d6">More...</a><br /></td></tr>
<tr class="separator:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gada1dff2c00b7d3a1cf722880c8373424"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gada1dff2c00b7d3a1cf722880c8373424">sm_config_set_set_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_base, uint set_count)</td></tr>
<tr class="memdesc:gada1dff2c00b7d3a1cf722880c8373424"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'set' pins in a state machine configuration.  <a href="group__sm__config.html#gada1dff2c00b7d3a1cf722880c8373424">More...</a><br /></td></tr>
<tr class="separator:gada1dff2c00b7d3a1cf722880c8373424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaaf804a05a2ebaa127d0d216b3d4e3e80">sm_config_set_in_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint in_base)</td></tr>
<tr class="memdesc:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'in' pins in a state machine configuration.  <a href="group__sm__config.html#gaaf804a05a2ebaa127d0d216b3d4e3e80">More...</a><br /></td></tr>
<tr class="separator:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac418400e30520ea3961d8977c180a4f9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gac418400e30520ea3961d8977c180a4f9">sm_config_set_in_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint in_base)</td></tr>
<tr class="memdesc:gac418400e30520ea3961d8977c180a4f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base for the 'in' pins in a state machine configuration.  <a href="group__sm__config.html#gac418400e30520ea3961d8977c180a4f9">More...</a><br /></td></tr>
<tr class="separator:gac418400e30520ea3961d8977c180a4f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga441e87022f2178c1c57d509da4aacb75"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga441e87022f2178c1c57d509da4aacb75">sm_config_set_in_pin_count</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint in_count)</td></tr>
<tr class="memdesc:ga441e87022f2178c1c57d509da4aacb75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the count of 'in' pins in a state machine configuration.  <a href="group__sm__config.html#ga441e87022f2178c1c57d509da4aacb75">More...</a><br /></td></tr>
<tr class="separator:ga441e87022f2178c1c57d509da4aacb75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7abfda1f60c62565d5b13536b0605af7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">sm_config_set_sideset_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint sideset_base)</td></tr>
<tr class="memdesc:ga7abfda1f60c62565d5b13536b0605af7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'sideset' pins in a state machine configuration.  <a href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">More...</a><br /></td></tr>
<tr class="separator:ga7abfda1f60c62565d5b13536b0605af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gad55bf8b410fa1d13bd1bd020587e01d7">sm_config_set_sideset_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint sideset_base)</td></tr>
<tr class="memdesc:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'sideset' pins in a state machine configuration.  <a href="group__sm__config.html#gad55bf8b410fa1d13bd1bd020587e01d7">More...</a><br /></td></tr>
<tr class="separator:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf543422206a8dbdc2efea85818dd650e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf543422206a8dbdc2efea85818dd650e">sm_config_set_sideset</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint bit_count, bool optional, bool pindirs)</td></tr>
<tr class="memdesc:gaf543422206a8dbdc2efea85818dd650e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'sideset' options in a state machine configuration.  <a href="group__sm__config.html#gaf543422206a8dbdc2efea85818dd650e">More...</a><br /></td></tr>
<tr class="separator:gaf543422206a8dbdc2efea85818dd650e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b819db1095ffdf4477ab114f2f1b362"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga8b819db1095ffdf4477ab114f2f1b362">sm_config_set_clkdiv_int_frac8</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint32_t div_int, uint8_t div_frac8)</td></tr>
<tr class="memdesc:ga8b819db1095ffdf4477ab114f2f1b362"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the state machine clock divider (from integer and fractional parts - 16:8) in a state machine configuration.  <a href="group__sm__config.html#ga8b819db1095ffdf4477ab114f2f1b362">More...</a><br /></td></tr>
<tr class="separator:ga8b819db1095ffdf4477ab114f2f1b362"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8c09c7a4372da95ad777faae51c5a24"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24">sm_config_set_clkdiv</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, float div)</td></tr>
<tr class="memdesc:gae8c09c7a4372da95ad777faae51c5a24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the state machine clock divider (from a floating point value) in a state machine configuration.  <a href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24">More...</a><br /></td></tr>
<tr class="separator:gae8c09c7a4372da95ad777faae51c5a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb753e8b35bbea9209ca4399a845f89c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gafb753e8b35bbea9209ca4399a845f89c">sm_config_set_wrap</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint wrap_target, uint wrap)</td></tr>
<tr class="memdesc:gafb753e8b35bbea9209ca4399a845f89c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the wrap addresses in a state machine configuration.  <a href="group__sm__config.html#gafb753e8b35bbea9209ca4399a845f89c">More...</a><br /></td></tr>
<tr class="separator:gafb753e8b35bbea9209ca4399a845f89c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2bfc66d6427ff92519e38dcb611133b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf2bfc66d6427ff92519e38dcb611133b">sm_config_set_jmp_pin</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint pin)</td></tr>
<tr class="memdesc:gaf2bfc66d6427ff92519e38dcb611133b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'jmp' pin in a state machine configuration.  <a href="group__sm__config.html#gaf2bfc66d6427ff92519e38dcb611133b">More...</a><br /></td></tr>
<tr class="separator:gaf2bfc66d6427ff92519e38dcb611133b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaed7a6e7dc4f1979c7c62e4773df8c79b">sm_config_set_in_shift</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool shift_right, bool autopush, uint push_threshold)</td></tr>
<tr class="memdesc:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup 'in' shifting parameters in a state machine configuration.  <a href="group__sm__config.html#gaed7a6e7dc4f1979c7c62e4773df8c79b">More...</a><br /></td></tr>
<tr class="separator:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga613bed03e10e569f1b7aede74d40a5b5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga613bed03e10e569f1b7aede74d40a5b5">sm_config_set_out_shift</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool shift_right, bool autopull, uint pull_threshold)</td></tr>
<tr class="memdesc:ga613bed03e10e569f1b7aede74d40a5b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup 'out' shifting parameters in a state machine configuration.  <a href="group__sm__config.html#ga613bed03e10e569f1b7aede74d40a5b5">More...</a><br /></td></tr>
<tr class="separator:ga613bed03e10e569f1b7aede74d40a5b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafea1a06362182514518ebd91b2d52fd5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gafea1a06362182514518ebd91b2d52fd5">sm_config_set_fifo_join</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356">pio_fifo_join</a> join)</td></tr>
<tr class="memdesc:gafea1a06362182514518ebd91b2d52fd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the FIFO joining in a state machine configuration.  <a href="group__sm__config.html#gafea1a06362182514518ebd91b2d52fd5">More...</a><br /></td></tr>
<tr class="separator:gafea1a06362182514518ebd91b2d52fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20366467e0cddab87a797459a53880e9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga20366467e0cddab87a797459a53880e9">sm_config_set_out_special</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool sticky, bool has_enable_pin, uint enable_bit_index)</td></tr>
<tr class="memdesc:ga20366467e0cddab87a797459a53880e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set special 'out' operations in a state machine configuration.  <a href="group__sm__config.html#ga20366467e0cddab87a797459a53880e9">More...</a><br /></td></tr>
<tr class="separator:ga20366467e0cddab87a797459a53880e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd24870944ce2f00f3f7847bb3e5d543"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gacd24870944ce2f00f3f7847bb3e5d543">sm_config_set_mov_status</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e">pio_mov_status_type</a> status_sel, uint status_n)</td></tr>
<tr class="memdesc:gacd24870944ce2f00f3f7847bb3e5d543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set source for 'mov status' in a state machine configuration.  <a href="group__sm__config.html#gacd24870944ce2f00f3f7847bb3e5d543">More...</a><br /></td></tr>
<tr class="separator:gacd24870944ce2f00f3f7847bb3e5d543"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2d2a23b08ba74188160469b3fd09936"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structpio__sm__config.html">pio_sm_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf2d2a23b08ba74188160469b3fd09936">pio_get_default_sm_config</a> (void)</td></tr>
<tr class="memdesc:gaf2d2a23b08ba74188160469b3fd09936"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the default state machine configuration.  <a href="group__sm__config.html#gaf2d2a23b08ba74188160469b3fd09936">More...</a><br /></td></tr>
<tr class="separator:gaf2d2a23b08ba74188160469b3fd09936"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p >PIO state machine configuration. </p>
<p >A PIO block needs to be configured, these functions provide helpers to set up configuration structures. See <a class="el" href="group__hardware__pio.html#ga28e9a84f3332ebf088f665d4b676117b">pio_sm_set_config</a></p>
<p ><a class="anchor" id="sm_config_pins"></a> On RP2040, pin numbers may always be specified from 0-31 </p>
<p >On RP2350A, pin numbers may always be specified from 0-31.</p>
<p >On RP2350B, there are 48 pins but each PIO instance can only address 32 pins (the PIO instance either addresses pins 0-31 or 16-47 based on <a class="el" href="group__hardware__pio.html#ga332210f0e594b24bf64f4bb1c8f49be3">pio_set_gpio_base</a>). The <code>sm_config_</code> state machine configuration always take <em>real</em> pin numbers in the full range, however:</p>
<ul>
<li>If <code>PICO_PIO_USE_GPIO_BASE != 1</code> then the 5th bit of the pin number is ignored. This is done so that programs compiled for boards with RP2350A do not incur the extra overhead of dealing with higher pins that don't exist. Effectively these functions behave exactly like RP2040 in this case. Note that <code>PICO_PIO_USE_GPIO_BASE</code> is defaulted to 0 if <code>PICO_RP2350A</code> is 1</li>
<li><p class="startli">If <code>PICO_PIO_USE_GPIO_BASE == 1</code> then the state machine configuration stores the actual pin numbers in the range 0-47. Of course in this scenario, it is possible to make an invalid configuration (one which uses pins in both the ranges 0-15 and 32-47).</p>
<p class="startli"><a class="el" href="group__hardware__pio.html#ga28e9a84f3332ebf088f665d4b676117b">pio_sm_set_config</a> (or pio_sm_init which calls it) attempts to apply the configuration to a particular PIO's state machine, and will return PICO_ERROR_BAD_ALIGNMENT if the configuration cannot be applied due to the above problem, or if the PIO's GPIO base (see <a class="el" href="group__hardware__pio.html#ga332210f0e594b24bf64f4bb1c8f49be3">pio_set_gpio_base</a>) does not allow access to the required pins.</p>
<p class="startli">To be clear, <a class="el" href="group__hardware__pio.html#ga28e9a84f3332ebf088f665d4b676117b">pio_sm_set_config</a> does not change the PIO's GPIO base for you; you must configre the PIO's GPIO base before calling the method, however you can use <a class="el" href="group__hardware__pio.html#ga53c3bbe939b3c58585d0e19ffe91e18e">pio_claim_free_sm_and_add_program_for_gpio_range</a> to find/configure a PIO instance suitable for a partiular GPIO range.</p>
</li>
</ul>
<p >You can set <code>PARAM_ASSERTIONS_ENABLED_HARDWARE_PIO = 1</code> to enable parameter checking to debug pin (or other) issues with hardware_pio methods.  </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaf2d2a23b08ba74188160469b3fd09936" name="gaf2d2a23b08ba74188160469b3fd09936"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf2d2a23b08ba74188160469b3fd09936">&#9670;&nbsp;</a></span>pio_get_default_sm_config()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structpio__sm__config.html">pio_sm_config</a> pio_get_default_sm_config </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the default state machine configuration. </p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Setting   </th><th class="markdownTableHeadNone">Default    </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Out Pins   </td><td class="markdownTableBodyNone">32 starting at 0    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Set Pins   </td><td class="markdownTableBodyNone">0 starting at 0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">In Pins   </td><td class="markdownTableBodyNone">32 starting at 0    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Side Set Pins (base)   </td><td class="markdownTableBodyNone">0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Side Set   </td><td class="markdownTableBodyNone">disabled    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Wrap   </td><td class="markdownTableBodyNone">wrap=31, wrap_to=0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">In Shift   </td><td class="markdownTableBodyNone">shift_direction=right, autopush=false, push_threshold=32    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Out Shift   </td><td class="markdownTableBodyNone">shift_direction=right, autopull=false, pull_threshold=32    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Jmp Pin   </td><td class="markdownTableBodyNone">0    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Out Special   </td><td class="markdownTableBodyNone">sticky=false, has_enable_pin=false, enable_pin_index=0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Mov Status   </td><td class="markdownTableBodyNone">status_sel=STATUS_TX_LESSTHAN, n=0   </td></tr>
</table>
<dl class="section return"><dt>Returns</dt><dd>the default state machine configuration which can then be modified. </dd></dl>

</div>
</div>
<a id="gae8c09c7a4372da95ad777faae51c5a24" name="gae8c09c7a4372da95ad777faae51c5a24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8c09c7a4372da95ad777faae51c5a24">&#9670;&nbsp;</a></span>sm_config_set_clkdiv()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_clkdiv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>div</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the state machine clock divider (from a floating point value) in a state machine configuration. </p>
<p >The clock divider slows the state machine's execution by masking the system clock on some cycles, in a repeating pattern, so that the state machine does not advance. Effectively this produces a slower clock for the state machine to run from, which can be used to generate e.g. a particular UART baud rate. See the datasheet for further detail.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">div</td><td>The fractional divisor to be set. 1 for full speed. An integer clock divisor of n will cause the state machine to run 1 cycle in every n. Note that for small n, the jitter introduced by a fractional divider (e.g. 2.5) may be unacceptable although it will depend on the use case. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga8b819db1095ffdf4477ab114f2f1b362" name="ga8b819db1095ffdf4477ab114f2f1b362"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8b819db1095ffdf4477ab114f2f1b362">&#9670;&nbsp;</a></span>sm_config_set_clkdiv_int_frac8()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_clkdiv_int_frac8 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>div_int</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>div_frac8</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the state machine clock divider (from integer and fractional parts - 16:8) in a state machine configuration. </p>
<p >The clock divider can slow the state machine's execution to some rate below the system clock frequency, by enabling the state machine on some cycles but not on others, in a regular pattern. This can be used to generate e.g. a given UART baud rate. See the datasheet for further detail.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">div_int</td><td>Integer part of the divisor </td></tr>
    <tr><td class="paramname">div_frac8</td><td>Fractional part in 1/256ths </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24" title="Set the state machine clock divider (from a floating point value) in a state machine configuration.">sm_config_set_clkdiv()</a> </dd></dl>

</div>
</div>
<a id="gafea1a06362182514518ebd91b2d52fd5" name="gafea1a06362182514518ebd91b2d52fd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafea1a06362182514518ebd91b2d52fd5">&#9670;&nbsp;</a></span>sm_config_set_fifo_join()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_fifo_join </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356">pio_fifo_join</a>&#160;</td>
          <td class="paramname"><em>join</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setup the FIFO joining in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">join</td><td>Specifies the join type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356" title="FIFO join states.">pio_fifo_join</a> </dd></dl>

</div>
</div>
<a id="gaaf804a05a2ebaa127d0d216b3d4e3e80" name="gaaf804a05a2ebaa127d0d216b3d4e3e80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaf804a05a2ebaa127d0d216b3d4e3e80">&#9670;&nbsp;</a></span>sm_config_set_in_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_in_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>in_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'in' pins in a state machine configuration. </p>
<p >'in' pins can overlap with the 'out', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">in_base</td><td>First pin to use as input. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga441e87022f2178c1c57d509da4aacb75" name="ga441e87022f2178c1c57d509da4aacb75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga441e87022f2178c1c57d509da4aacb75">&#9670;&nbsp;</a></span>sm_config_set_in_pin_count()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_in_pin_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>in_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the count of 'in' pins in a state machine configuration. </p>
<p >When reading pins using the IN pin mapping, this many (low) bits will be read, with the rest taking the value zero.</p>
<p >RP2040 does not have the ability to mask unused input pins, so the in_count must be 32 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">in_count</td><td>1-32 The number of pins to include when reading via the IN pin mapping </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac418400e30520ea3961d8977c180a4f9" name="gac418400e30520ea3961d8977c180a4f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac418400e30520ea3961d8977c180a4f9">&#9670;&nbsp;</a></span>sm_config_set_in_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_in_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>in_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base for the 'in' pins in a state machine configuration. </p>
<p >'in' pins can overlap with the 'out', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">in_base</td><td>First pin to use as input. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaed7a6e7dc4f1979c7c62e4773df8c79b" name="gaed7a6e7dc4f1979c7c62e4773df8c79b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaed7a6e7dc4f1979c7c62e4773df8c79b">&#9670;&nbsp;</a></span>sm_config_set_in_shift()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_in_shift </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>shift_right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autopush</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>push_threshold</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setup 'in' shifting parameters in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">shift_right</td><td>true to shift ISR to right, false to shift ISR to left </td></tr>
    <tr><td class="paramname">autopush</td><td>whether autopush is enabled </td></tr>
    <tr><td class="paramname">push_threshold</td><td>threshold in bits to shift in before auto/conditional re-pushing of the ISR </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf2bfc66d6427ff92519e38dcb611133b" name="gaf2bfc66d6427ff92519e38dcb611133b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf2bfc66d6427ff92519e38dcb611133b">&#9670;&nbsp;</a></span>sm_config_set_jmp_pin()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_jmp_pin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>pin</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'jmp' pin in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">pin</td><td>The raw GPIO pin number to use as the source for a <code>jmp pin</code> instruction. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gacd24870944ce2f00f3f7847bb3e5d543" name="gacd24870944ce2f00f3f7847bb3e5d543"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd24870944ce2f00f3f7847bb3e5d543">&#9670;&nbsp;</a></span>sm_config_set_mov_status()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_mov_status </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e">pio_mov_status_type</a>&#160;</td>
          <td class="paramname"><em>status_sel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>status_n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set source for 'mov status' in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">status_sel</td><td>the status operation selector. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e" title="MOV status types.">pio_mov_status_type</a> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status_n</td><td>parameter for the mov status operation (currently a bit count) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga1dbca28933c083592e6e359effe250bf" name="ga1dbca28933c083592e6e359effe250bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1dbca28933c083592e6e359effe250bf">&#9670;&nbsp;</a></span>sm_config_set_out_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'out' pins in a state machine configuration. </p>
<p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">out_base</td><td>First pin to set as output. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gade3d072e319fc7d10bec180a9692ea89" name="gade3d072e319fc7d10bec180a9692ea89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade3d072e319fc7d10bec180a9692ea89">&#9670;&nbsp;</a></span>sm_config_set_out_pin_count()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_pin_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the number of 'out' pins in a state machine configuration. </p>
<p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">out_count</td><td>0-32 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf3004bbd996443d0c841664ebc92905c" name="gaf3004bbd996443d0c841664ebc92905c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3004bbd996443d0c841664ebc92905c">&#9670;&nbsp;</a></span>sm_config_set_out_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'out' pins in a state machine configuration. </p>
<p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">out_base</td><td>First pin to set as output. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
    <tr><td class="paramname">out_count</td><td>0-32 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga613bed03e10e569f1b7aede74d40a5b5" name="ga613bed03e10e569f1b7aede74d40a5b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga613bed03e10e569f1b7aede74d40a5b5">&#9670;&nbsp;</a></span>sm_config_set_out_shift()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_shift </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>shift_right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autopull</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>pull_threshold</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setup 'out' shifting parameters in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">shift_right</td><td>true to shift OSR to right, false to shift OSR to left </td></tr>
    <tr><td class="paramname">autopull</td><td>whether autopull is enabled </td></tr>
    <tr><td class="paramname">pull_threshold</td><td>threshold in bits to shift out before auto/conditional re-pulling of the OSR </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga20366467e0cddab87a797459a53880e9" name="ga20366467e0cddab87a797459a53880e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga20366467e0cddab87a797459a53880e9">&#9670;&nbsp;</a></span>sm_config_set_out_special()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_special </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>sticky</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>has_enable_pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>enable_bit_index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set special 'out' operations in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">sticky</td><td>to enable 'sticky' output (i.e. re-asserting most recent OUT/SET pin values on subsequent cycles) </td></tr>
    <tr><td class="paramname">has_enable_pin</td><td>true to enable auxiliary OUT enable pin </td></tr>
    <tr><td class="paramname">enable_bit_index</td><td>Data bit index for auxiliary OUT enable. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga40d4807c0665d30ceab153b7444560eb" name="ga40d4807c0665d30ceab153b7444560eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga40d4807c0665d30ceab153b7444560eb">&#9670;&nbsp;</a></span>sm_config_set_set_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_set_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'set' pins in a state machine configuration. </p>
<p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">set_base</td><td>First pin to use as 'set'. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga78e129fe383f2af0fc5e1448dea4c3d6" name="ga78e129fe383f2af0fc5e1448dea4c3d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga78e129fe383f2af0fc5e1448dea4c3d6">&#9670;&nbsp;</a></span>sm_config_set_set_pin_count()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_set_pin_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the count of 'set' pins in a state machine configuration. </p>
<p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">set_count</td><td>0-5 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gada1dff2c00b7d3a1cf722880c8373424" name="gada1dff2c00b7d3a1cf722880c8373424"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gada1dff2c00b7d3a1cf722880c8373424">&#9670;&nbsp;</a></span>sm_config_set_set_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_set_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'set' pins in a state machine configuration. </p>
<p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">set_base</td><td>First pin to use as 'set'. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
    <tr><td class="paramname">set_count</td><td>0-5 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf543422206a8dbdc2efea85818dd650e" name="gaf543422206a8dbdc2efea85818dd650e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf543422206a8dbdc2efea85818dd650e">&#9670;&nbsp;</a></span>sm_config_set_sideset()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_sideset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>bit_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>optional</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>pindirs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'sideset' options in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">bit_count</td><td>Number of bits to steal from delay field in the instruction for use of side set (max 5) </td></tr>
    <tr><td class="paramname">optional</td><td>True if the topmost side set bit is used as a flag for whether to apply side set on that instruction </td></tr>
    <tr><td class="paramname">pindirs</td><td>True if the side set affects pin directions rather than values </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga7abfda1f60c62565d5b13536b0605af7" name="ga7abfda1f60c62565d5b13536b0605af7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7abfda1f60c62565d5b13536b0605af7">&#9670;&nbsp;</a></span>sm_config_set_sideset_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_sideset_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>sideset_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'sideset' pins in a state machine configuration. </p>
<p >'sideset' pins can overlap with the 'in', 'out' and 'set' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">sideset_base</td><td>First pin to use for 'side set'. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gad55bf8b410fa1d13bd1bd020587e01d7" name="gad55bf8b410fa1d13bd1bd020587e01d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad55bf8b410fa1d13bd1bd020587e01d7">&#9670;&nbsp;</a></span>sm_config_set_sideset_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_sideset_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>sideset_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'sideset' pins in a state machine configuration. </p>
<p >This method is identical to <a class="el" href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">sm_config_set_sideset_pin_base</a>, and is provided for backwards compatibility</p>
<p >'sideset' pins can overlap with the 'in', 'out' and 'set' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">sideset_base</td><td>First pin to use for 'side set'. See <a class="el" href="group__sm__config.html#sm_config_pins">sm_config_ pins</a> for more detail on pin arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gafb753e8b35bbea9209ca4399a845f89c" name="gafb753e8b35bbea9209ca4399a845f89c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb753e8b35bbea9209ca4399a845f89c">&#9670;&nbsp;</a></span>sm_config_set_wrap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_wrap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>wrap_target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>wrap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the wrap addresses in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">wrap_target</td><td>the instruction memory address to wrap to </td></tr>
    <tr><td class="paramname">wrap</td><td>the instruction memory address after which to set the program counter to wrap_target if the instruction does not itself update the program_counter </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->

	<script src="main.js"></script>
</body>
</html>